Repository navigation
fix(macos): 修复 Git Log 筛选文字重叠 (#1342) - #1489
Merged
xiaoyumuxi merged 2 commits intoOct 25, 2026
Merged
Conversation
xiaoyumuxi
marked this pull request as ready for review
October 25, 2026 10:26
Lithe Review结论: 未发现需要阻塞合并的问题。 Scope Check
Suggestions
Summary修复范围集中,布局方式与问题原因一致。新增渲染测试能检查名称前缀是否保持可读,但组件测试不能代替四项筛选并列时的布局、下拉与清除操作验收。 Verification
|
…-git-log-filter-label
1lck
added a commit
that referenced
this pull request
Oct 27, 2026
* fix(macos): 运行 Node 脚本时补齐启动 PATH (#1455) (#1492) * fix(macos): 运行 Node 脚本时补齐启动 PATH (#1455) 从 Finder 启动的 Lithe 只继承 launchd 的最小 PATH,pnpm/npm/yarn/tsx 的 #!/usr/bin/env node 找不到解释器,运行 package.json 脚本直接报 env: node: No such file or directory。 - RunLaunchEnvironment:启动前把发现到的 node 目录和解析出的可执行文件目录 前置到子进程 PATH,按小写去重;项目内 node 与项目根目录不注入,避免仓库 文件劫持后续系统命令。 - RunExecutableResolver:.toolchain 与 .command 共用同一条环境组合路径, 覆盖主进程和预启动步骤。 - RunLaunchEnvironmentTests:6 个用例覆盖补齐、项目内排除、wrapper 排除、 去重与顺序、缺失 PATH、resolver 实际接线。 - 新增 Agent Note 与平台特性矩阵 run-node-launch-path 记录。 * fix(macos): 保留运行配置显式 PATH 优先级,补齐 Node 工具链覆盖 - 启动 PATH 改为追加:原有条目(含运行配置显式 PATH)保持优先级,自动发现 的 node 与启动器目录追加在后;Finder 启动时 PATH 本就没有 node,追加同样生效。 - 新增「显式 PATH 保持优先级」与 .toolchain("project-node") 接线测试,共 8 例。 - 修正 Agent Note 与特性矩阵中「两端都排除项目目录」「与 Windows 一致」的不准确 表述,补充 fnm multishell 等发现范围限制与 Windows 排序差异。 * feat(macos): AI 设置资源库、Agent 上下文长度与压缩阈值、对话多标签与性能、ACP 适配器升级 (#1490) * feat(macos): AI 设置资源库折叠、Agent 上下文长度与自动压缩阈值、对话多标签与性能、ACP 适配器升级 设置 - 设置 › AI 下新增可折叠的“资源库”,收纳指令、技能、Hooks、MCP 配置;面包屑为 AI › 资源库 › 页面,搜索和跳转自动展开。 - 设置页内容区随窗口宽度伸缩,去掉各页 900/860/760 的宽度上限,调大窗口不再留右侧空白。 - Agent 对话详情栏与上下文面板的说明文字收进 ⓘ。 Agent 上下文 - 设置 › Agents 新增“上下文”卡片:上下文长度、自动压缩阈值(支持 200K / 1M / 200000,留空沿用 Agent 默认值,占位值为 Agent 自己上报的大小)。 - Codex 写入 model_context_window / model_auto_compact_token_limit;Claude Code 只有一个压缩窗口开关,阈值(否则上下文长度)作为 CLAUDE_CODE_AUTO_COMPACT_WINDOW 传入。 - 圆环分母按配置封顶(Claude 回合内会在配置值和模型值之间来回上报),阈值与圆环不同时在弹窗多一行“自动压缩阈值”。 ACP 适配器与观测 - codex-acp 1.13.1 → 2.2.2,claude-agent-acp 0.81.2 → 0.95.0,配套 CLI 最低版本随依赖提高。 - Codex 2.x 把 401 当作“需要登录”且不再发失败更新,中继在信封保留原始类别并对适配器改成通用类别,宿主仍按永久错误立即取消。 - Claude 订阅经本机透传代理观测(ANTHROPIC_BASE_URL,请求原样转发,不读取令牌),Claude Code 起标题请求标记为 auxiliary,只计 Token 不计步数(Windows 同步)。 - 附件路径含百分号编码时额外带一行 📎 真实路径,避免模型读 %20 失败;斜杠命令不追加。 Agent 对话 - 编辑区对话改为每个对话一个标签(EditorTabItem.agentConversation(UUID)),新对话在新标签打开,当前标签为空时复用。 - 点开/收起思考过程不再重算整条对话(展开状态移入引用存储),已完成轮次的分组与导航索引缓存,每次刷新只重算当前一轮。 文档与矩阵 - 更新 Agent Note、设置归属 Note、rust-core-api 契约、功能矩阵(新增 agent-context-limits)。 * fix(agent): address PR #1490 conversation and usage regressions Bind editor tabs to Agent/session pairs and clean discarded prepared sessions while retaining drafts. Count all observed requests separately from conversation steps, preserve auxiliary-only usage, and retain legacy statistics compatibility. Make attachment URI tests platform-aware, align CLI version fixtures, and add deterministic regressions, owning notes, and feature matrix updates. * fix(settings): preserve resets and enforce source-backed configuration Invalidate context-limit drafts on external changes and Restore Defaults, including empty overrides with unsaved input. Guard blur and page-exit commits against stale snapshots and cover the native lifecycle. Deny camera and microphone requests in Agent visualization pages through the existing shared delegate and register the entry in media coverage tests. Document discover-edit-confirm-save-readback settings behavior, secret protection, and the scope of native configuration writes; keep feature evidence current. * fix(agent): 处理 PR 1490 评审发现的问题 - Claude 订阅在用户配置了自定义 ANTHROPIC_BASE_URL 时不再改走本地统计代理 - 斜杠命令只识别单个 /word,绝对路径开头的消息不再跳过附件路径行;含控制字符的路径不追加 - Rust 端把自动压缩阈值限制在上下文长度以内 - 会话命名请求只检查 system 的第一个块,不再序列化整个 system - 上下文长度输入拒绝十六进制和指数写法 - 只设压缩阈值时仍刷新 Agent 默认上下文长度 - 修正被新代码拆开的两处文档注释 * fix(macos): 新对话复用空会话时不再解绑标签;缺少 PATH 时保留系统目录 - 聚焦标签已绑定可复用的空会话时直接返回,避免解绑后又被 reconcile 绑回 - 启动环境缺少 PATH 时以 /usr/bin:/bin 为基础追加已解析目录,env 类 shebang 启动器可用 - PATH 去重改为区分大小写,不再丢弃区分大小写卷上的不同目录 * fix(macos): 设置页和窗口标题跟随应用语言而不是系统语言 (#1418) String(localized:) 按系统语言选语言包,locale 参数只影响格式,应用语言为英文而系统为中文时会漏出中文。 改为 AppLanguage.localizedString/localizedFormat,Text 字面量则交给环境 locale。 - 设置窗口和软件更新窗口标题 - 工作台背景图占位文字(设置页与工作台两处) - 终端默认 Shell 的“系统默认 · …” - 终端回滚行数的“N 行” - AI 供应商用途文字、设置搜索词、欢迎窗口标题 * fix(macos): 界面文案统一按应用语言取词,词条全部收进 shared/i18n (#1494) (#1496) * fix(macos): 界面文案统一按应用语言取词,词条全部收进 shared/i18n (#1494) - 新增 L10n.string / Bundle.appLanguage(LitheModuleAPI),由设置里的语言驱动 - 约 500 处 String(localized:) 与 NSLocalizedString 迁移到 L10n - 补齐约 370 条缺失的中英词条(错误、弹窗、Java 调试页、更新窗口等) - 新增 verify-app-language-localization.mjs 防退化并接入 verify-service-boundaries.sh * docs(agent): 要求界面文案必须走 shared/i18n 与 L10n,审查时核对 * fix(macos): 端口、退出码、HTTP 状态码不再被本地化数字格式加千分位 * fix(macos): 打开项目时可选本地或远程,远程开发窗口随窗口缩放 (#1487) (#1499) * fix(macos): 打开项目时按已保存的 SSH 连接选择本地或远程,并让远程开发窗口随父窗口缩放 (#1487) * fix(macos): 已保存 SSH 连接时,打开项目改为统一的本地/远程选择面板 (#1487) * fix(macos): 打开面板内置本地文件夹浏览,不再弹系统访达面板 (#1487) * fix(macos): 打开面板文件列表显示修改时间与大小,默认尺寸更大且不再随点击缩小 (#1487) * fix(macos): 远程开发窗口的主机地址行不再撑出窗口,长位置名截断显示 (#1487) * fix(macos): 远程开发窗口的地址行改为两行,位置信息换行完整显示 (#1487) * docs(matrix): 同步打开项目面板与远程开发窗口自适应的能力记录 (#1487) * fix(macos): 打开面板本地目录异步加载、路径校验与空目录提示,修复 review 反馈 (#1487) * docs(debug): #1210 统一调试内核、三层能力与调试适配器 Registry 设计 (#1500) * docs(debug): propose JSON-composed debugger plugin design (#1210) * docs(debug): narrow registry proposal and separate platform extensions (#1210) * docs(debug): redesign #1210 around a unified debug engine (#1210) - Replace the incremental Registry note with a unified Rust Core DAP engine plan: one kernel for both platforms, Swift session and per-language factories removed after P0 baseline parity (P0-P5). - Define required / recommended / optional capability tiers; #1210 closes on the required tier plus one third-party adapter (GDB DAP or lldb-dap) on both platforms. - Turn the native projections note into an optional extensions note covering all optional groups (breakpoints, expressions, stepping, sources, native, modules). - Add a session projection v2 draft schema with accept/reject examples: optional source/line/column, string addresses, presentationHint passthrough, stop generation and capability snapshot. - Update README and public extension note links. * refactor(macos): remove unused legacy editor code (#1498) * fix(macos): prevent Git Log filter labels from overlapping (#1342) (#1489) * feat(debug): #1210 P0/P1 调试行为基线、Core v2 投影与旧 Swift 会话删除 (#1508) * feat(debug): #1210 P0/P1 调试行为基线与 Core v2 投影,旧 Swift 会话删除 - P0:shared/fixtures/debug/v1-baseline.json 记录 15 项调试行为基线, scripts/verify-debug-v1-baseline.mjs 校验证据测试与 fixture 真实存在, 并接入 verify-shared-contracts.sh - P1:Rust Core 新增 v2 投影(source 可选、地址为字符串、开放 presentationHint、 stopGeneration、能力快照),共用 projection-v2-examples.json - P1:支持 DAP startDebugging 反向请求(debug.startDebuggingResponse), 仅在宿主声明 supportsStartDebuggingRequest 时启用;Node source map 位置透传 - macOS:新增 DebugProjectionV2,Core 会话与 fixture 对齐 - 删除旧 Swift DebugAdapterProtocolSession,Java、Python、Rust 全部走 Core 会话 - 移除宿主内置 Go(Delve)与 Node(js-debug)调试,之后由语言插件提供 - 更新提案笔记与 debug-adapters-1210 README * feat(debug): #1210 基础层能力快照、扩展注册表、过期引用、子会话聚合与 v2 投影输出 * docs(debug): #1210 提案笔记更新基础层进度 * fix(ci): #1210 补调试能力矩阵记录,修正 HTML 预览笔记的失效路径 * fix(debug): #1210 评审修复:停止代数竞态与按线程失效、过期栈帧、能力事件、子会话停止去重、v2 路径与栈帧校验 * chore(debug): #1210 decode_projection 仅测试使用 * chore(debug): #1210 去掉仅测试使用的导入警告 * fix(debug): #1210 父会话销毁时级联销毁子会话,统一父子生命周期 * feat(debug): #1210 macOS 多会话:startDebugging 子会话、统一生命周期与会话标签条 (#1509) * feat(debug): #1210 macOS 多会话:startDebugging 子会话、统一生命周期与会话标签条 * feat(debug): #1210 子会话默认复用 provider 会话工厂,宿主总是声明 startDebugging * refactor(debug): #1210 移除内置 Python、Rust stdio 调试器,只保留 Java,其余交给语言插件 * test(debug): #1210 投影 v2 夹具按文件位置定位,不依赖工作目录 * feat(debug): #1210 多会话 UI 改为折叠模式,会话切换并入线程选择器 * docs(matrix): #1210 调试功能矩阵补充多会话与内置调试器移除 * fix(debug): #1210 语言目录不再为 python、rust 声明内置调试适配器 * fix(debug): #1210 子会话启动前重放已保存断点,登记多会话平台矩阵 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * fix(debug): #1210 子会话不抢选择、停止清理去重、会话菜单走 i18n Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * refactor(macos): 移除内置 Rust 调试器遗留的 lldb-dap 工具发现 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com> * feat(debug): #1210 debugAdapters 声明校验与插件 API 4 契约 (#1510) * feat(debug): #1210 debugAdapters 声明校验、插件 API 4 契约与拒绝用例 * fix(debug): #1210 评审修复:onDebug 激活事件进 schema、API 4 以下拒绝 debugAdapters、安装检查覆盖适配器可执行文件 * fix(debug): #1210 安装检查跟随符号链接到最终普通文件(悬空、指向目录、循环均拒绝) * fix(debug): #1210 评审跟进:runtime 启动的 entry/packagedRuntime 纳入安装检查、路径规范化、空 debugAdapters 与 Core 一致 * fix(macos): 修复工作树列表与操作按钮 UI (#1503) (#1516) * fix(macos): restore worktree UI layout and action styles (#1503) * test(macos): isolate breakpoint cleanup from the default debug catalog * feat(debug): #1210 macOS 调试适配器宿主:声明式 Provider、调试控制台与插件热激活 (#1512) * feat(debug): #1210 debugAdapterID 启动计划与 debug.adapters.startArguments 命令 * feat(debug): #1210 macOS 声明式调试适配器 Provider(stdio launch) * test(debug): #1210 插件调试适配器传输与启动配置回落测试,补 Agent 笔记 * refactor(debug): #1210 移除调试启动解析器里遗留的内置 Rust / Python 分支 * feat(debug): #1210 调试适配器支持 systemCommand 启动,工具发现覆盖 Xcode 工具链 * fix(core): 清理 git 模块在非测试构建下的两个编译警告 UNTRACKED_DIRECTORY_SUMMARY_THRESHOLD 只有测试使用,重导出加 #[cfg(test)]; create_line_history_scratch 在 unix 分支里的外层 builder 不需要 mut。 * feat(debug): #1210 调试控制台提示符与补全,调试适配器可执行文件作为插件设置 调试控制台 - 控制台底部新增提示符输入行和补全弹窗,补全由适配器的 completions 请求提供, 首词只保留可执行的候选(过滤 lldb-dap 混入的 C++ 关键字和类型)。 - 插件可在 debugAdapters[].console 里声明 commandPrefix 与命令列表, 宿主按插件声明给出命令补全和前缀转换,不再按适配器名字写特殊分支。 - Core 新增 DAP completions 请求的转发与能力检查。 可执行文件设置 - debugAdapters[].configurations.launch.executable { setting, candidates[] } 与 targetBindings.program = "target.executable" 成对出现; 用户在设置里填的路径永远优先,填了却不可运行是终止错误,不回落候选。 - Core 新增 debug.adapters.executablePlan,只产出计划不碰文件系统; debug.adapters.startArguments 的目标事实新增 executable,必须是绝对路径。 - 宿主新增 MacPluginDebugExecutableResolver,按候选顺序检查文件系统; 设置页回显实际生效的路径和来源,找不到时在 ⓘ 里说明如何安装或编译。 - 契约、schema、fixture、README 和 rust-core-api.md 同步更新, 两项均加在尚未发布的插件 API 4 debugAdapters v1 内。 附带补充了中英文词条、两篇 Agent 笔记和对应的 Rust / Swift 测试。 * feat(plugins): #1210 调试适配器插件热激活,装完即用不用重启 插件的贡献在启动时一次性装进模块图,运行期没有再登记或撤回的路径,所以每次装插件都要重启。 这次只放行后端已经有运行期实现的插件,判断由宿主写在 PluginDescriptor.canActivateWithoutRestart, 不是 plugin.json 字段,插件契约不变。目前只有纯调试适配器插件满足条件,其余插件仍写成 .updateStaged,重启后生效。 - 新增内存实时注册表 MacLivePluginRegistry:后台线程用只读 store 扫描已安装目录,主线程读不可变 快照;扫描失败保留上一次的登记;generation 只在内容变化时加一 - 调试器查找、语言目录每次读取实时快照;debug-only 语言声明只给已有语言加 .debugAdapter,不改 名字、语言标识和语言服务器;装调试器不会重启正在跑的语言服务器 - 插件包被替换、移除、停用前先撤回,停掉它服务的调试会话 - 多个项目窗口各有一个注册表,用 litheLivePluginsDidChange 通知互相重扫 - MacPluginManager 的安装、更新、回退、卸载、启用/停用走实时路径,不再设置需要重启标记 - 修复 ValidatedPluginCatalog 按 id 排序遍历时 debug-only 声明可能先占住语言、让语言包被判成重复 的顺序问题 - 补 Agent 笔记和 PluginLiveActivationTests(19 个) * fix(debug): #1210 适配器拒绝请求时显示它自己的解释,而不是笼统提示 DAP 的失败响应有两段文字:message 是给客户端解释的简短原因,body.error.format 才是给用户看的说明(带 {变量} 占位符)。lldb-dap、debugpy 等把有用的信息只放在 后者,Core 之前只读 message,缺失时回落成英文笼统提示。 现在 Core 优先取 error.format 并用 error.variables 填充占位符,再回落到 message; 没有任何文字时 Swift 端的兜底提示也走 L10n(补齐中英词条)。 * test(debug): #1210 可执行文件绑定测试在 Windows 上改用平台原生绝对路径 Path::is_absolute 与平台有关,Windows 上 /work/main 不是绝对路径,Core 正确地拒绝了它,导致 Windows Rust 测试失败。测试改为按平台选择绝对路径,生产逻辑不变。 * fix(debug): #1210 评审修复:按请求与目标类型选适配器、拒绝未支持的传输、会话按插件停止、传递被禁用的能力 - 选择:文件启动只考虑支持 launch 且 targetKinds 覆盖 file 的 selector;语言归属(languageIDs)与启动选择(fileLaunchLanguageIDs)分开,只声明 attach 的适配器不再被选来启动文件 - 传输:宿主只能拉起 stdio,声明 tcpPort/tcpAnnounced 的适配器在启动进程前以 plugin.launch.unsupportedTransport 拒绝,并给出本地化说明 - 能力:capabilities.disabled 经 debug.createSession 的 disabledCapabilities 传给 Core - 会话:会话记录所属插件,更新、卸载、停用只停该插件拥有的会话,同语言其他插件的会话不受影响;在模块设置里停用调试模块时同样停止 - 文案:启动解析的拒绝原因走 L10n,补齐中英词条 - 文档与矩阵:更新插件热激活 Agent Note 与 rust-core-api.md,新增 plugin-debug-adapters 功能矩阵记录(macOS 已实现、Windows 未接入) * docs(debug): #1210 设计笔记补充 macOS P4 进展,更正适配器启动方式的过期描述 (#1518) * chore(ci): add Bot PR workflow for GitHub App identity (#1531) --------- Co-authored-by: Xiaoyumuxi <23722032@bjtu.edu.cn> Co-authored-by: muchen <145200703+Mucheen@users.noreply.github.com> Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com> Co-authored-by: arkleselect <166632698+arkleselect@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
macOS Git Log 选择用户后,窄工具栏会把筛选名称与选中值分别压缩,造成文字挤压重叠。现在用同一段单行文字布局并统一尾部截断,让名称保持可读。
验证:
Fixes #1342